%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%  This file is part of Logtalk <https://logtalk.org/>
%  SPDX-FileCopyrightText: 1998-2025 Paulo Moura <pmoura@logtalk.org>
%  SPDX-License-Identifier: Apache-2.0
%
%  Licensed under the Apache License, Version 2.0 (the "License");
%  you may not use this file except in compliance with the License.
%  You may obtain a copy of the License at
%
%      http://www.apache.org/licenses/LICENSE-2.0
%
%  Unless required by applicable law or agreed to in writing, software
%  distributed under the License is distributed on an "AS IS" BASIS,
%  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
%  See the License for the specific language governing permissions and
%  limitations under the License.
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


:- object(prototype_1,
	implements(protocol1),
	imports(cateogry1),
	extends(parent1)).

:- end_object.


:- object(prototype_2,
	implements((protocol1, protocol2)),
	imports((cateogry1, category2)),
	extends((parent1, parent2))).

:- end_object.


:- object(prototype_3,
	implements([protocol1, protocol2]),
	imports([category1, category2]),
	extends([parent1, parent2])).

:- end_object.


:- object(class_1,
	implements(protocol1),
	imports(category1),
	instantiates(instance1),
	specializes(superclass1)).

:- end_object.


:- object(class_2,
	implements((protocol1, protocol2)),
	imports((category1, category2)),
	instantiates((instance1, instance2)),
	specializes((superclass1, superclass2))).

:- end_object.


:- object(class_3,
	implements([protocol1, protocol2]),
	imports([category1, category2]),
	instantiates([instance1, instance2]),
	specializes([superclass1, superclass2])).

:- end_object.
